﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;

namespace LiMinCRMPlugin.InterfaceDocking
{
    /// <summary>
    /// 物料MODEL
    /// </summary>
    public class MaterialModel
    {
        public class Post
        {
            public Header header { get; set; }
            public Body body { get; set; }

        }

        /// <summary>
        /// 头部报文
        /// </summary>
        public class Header
        {
            public string appId { get; set; }  //调用方应用主键--固定值：ERP_K3CLOUD
            public string method { get; set; } //调用方法

            public string requestId { get; set; } //请求唯一标识
            public string sign { get; set; } //签名信息

        }

        public class materialList
        {

            public string name { get; set; }//物料名称
            public string code { get; set; }//物料编码
            public string category { get; set; }//物料分组编码
            public string ggxh { get; set; }//物料规格

            public string jbdw { get; set; }//基本单位编码
            public string mrsl { get; set; }//默认税率
            public string sflbm { get; set; }//税分类编码
            public string sflmc { get; set; }//税分类名称
            public string kcdw { get; set; }//库存单位
            public string xsdw { get; set; }//销售单位(取ERP销售计价单位)
            public string dwhssl { get; set; }//销售单位换算数量(取ERP销售计价单位换算比例)
            public string cpjl { get; set; }//产品经理(名称)

            public string yxq { get; set; }//有效期 yyyy-MM-dd
            public string scrq { get; set; }//生产日期 yyyy-MM-dd
            public string szxx { get; set; }//三证信息
            public string cjzz { get; set; }//创建组织(默认1000集团组织编码)
            public string syzz { get; set; }//使用组织(默认1000集团组织编码)
            public int jyr { get; set; }//禁用人
            public string jyrq { get; set; }//禁用日期 yyyy-MM-dd
            public string jyzt { get; set; }//禁用状态(0禁用，1启用)
            public string tgf { get; set; }//推广费
            public string zzcl { get; set; }//制造策略
            public string mrzz { get; set; }//默认组织(默认1000集团组织编码)
            public string jg { get; set; }//加工
            public string bc { get; set; }//包材
            public string bzxh { get; set; }//包装型号
            public string spm { get; set; }//商品名
            public string hl { get; set; }//含量
            public string cpys { get; set; }//成品颜色
            public string yxcf { get; set; }//有效成分
            public string qdpp { get; set; }//渠道品牌
            public string dz { get; set; }//定制
            public string zxbz { get; set; }//最小包装
            public string cpxz { get; set; }//产品性质
            public string cpdjzh { get; set; }//产品登记证号
            public string djhdqrq { get; set; }//登记号到期日期
            public string scpzzh { get; set; }//生产批准证号
            public string pzzdqrq { get; set; }//批准证到期日期
            public string bzzh { get; set; }//标准证号
            public string bzzdqrq { get; set; }//标准证到期日期
            public string cppl { get; set; }//产品品类(名称)
            public string cplb { get; set; }//产品类别(名称)
            public string bclx { get; set; }//包材类型(名称)
            public string dclx { get; set; }//淡储类型(名称)
            public string jx { get; set; }//剂型(名称)
            public string sbmc { get; set; }//商标名称(名称)
            public string sclx { get; set; }//生产类型(名称)
            public string erpcpnm { get; set; }//ERP产品内码
            public string cpsyzz { get; set; }//产品使用组织
            public string jjdw { get; set; }//销售计价单位(取ERP销售单位)
            public string jjdwhssl { get; set; }//销售计价单位换算数量(取ERP销售单位换算比例)
            public string kpmc { get; set; }//开票名称
            public string kpdw { get; set; }//开票单位
            public string kpggxh { get; set; }//开票规格型号

            public int sl { get; set; }//税率
            public string sybm { get; set; }//可用部门
            public decimal jshs { get; set; }//件数换算
            public string mrsyzz { get; set; }//默认使用组织(默认1000集团组织编码)
        }


        /// <summary>
        /// 物料分组报文
        /// </summary>
        public class materialGroupList
        {
            public string name { get; set; }//物料分组名称
            public string code { get; set; }//物料分组编码
            public string ms { get; set; }//物料分组描述
            public string parent_category { get; set; }//父分组编码
            public string erpfznm { get; set; }//分组内码
            public string erpffznm { get; set; }//父分组内码
        }


        /// <summary>
        /// 报文主体
        /// </summary>
        public class Body
        {
            public string orgCode { get; set; }//组织编码

            List<materialList> FormalList = new List<materialList>();
            public List<materialList> materialList
            {
                get { return FormalList; }
                set { FormalList = value; }
            }
        }

    }
}
